#include <compilation/Program.h>


#ifndef NDEBUG
# define SET_DEBUG_FOR_INSTRUCTIONS() debug_instruction_visitor = true
# define SET_DEBUG_FOR_EXPRESSIONS()  debug_expression_visitor  = true
# define SET_DEBUG_FOR_VISITORS() \
  SET_DEBUG_FOR_EXPRESSIONS(); \
  SET_DEBUG_FOR_INSTRUCTIONS();

# define UNSET_DEBUG_FOR_INSTRUCTIONS() debug_instruction_visitor = false
# define UNSET_DEBUG_FOR_EXPRESSIONS()  debug_expression_visitor  = false
# define UNSET_DEBUG_FOR_VISITORS() \
  UNSET_DEBUG_FOR_EXPRESSIONS(); \
  UNSET_DEBUG_FOR_INSTRUCTIONS();
#else
# define SET_DEBUG_FOR_INSTRUCTIONS()
# define SET_DEBUG_FOR_EXPRESSIONS()
# define SET_DEBUG_FOR_VISITORS()
# define UNSET_DEBUG_FOR_INSTRUCTIONS()
# define UNSET_DEBUG_FOR_EXPRESSIONS()
# define UNSET_DEBUG_FOR_VISITORS()
#endif

namespace compilation
{

#ifndef NDEBUG
extern bool display_info_during_parsing;
extern bool debug_instruction_visitor;
extern bool debug_expression_visitor;
#endif // NDEBUG

} // compilation
